Bandwidth management is a process of controlling the amount of data over a computer network to avoid network congestion that results in poor performance. Quality of service (QoS) is an industry term that indicates an overall performance of a network connection. The quality of service typically incorporates several parameters to quantitatively measure the quality of the network connection such as error rates, bandwidth, throughput, transmission delay, availability, jitter, and etcetera. The quality of service of a network connection is particularly important for transporting traffic with special requirements such as real-time video streaming.
Computer network issues may affect a network connection's quality of service as packets travel from an origin to a destination. One issue that may arise is low throughput due to varying loads from disparate users sharing the same network resources. Another issue that may arise is routers dropping packets when the router buffers are full. Packet latency is another issue that may arise when packets get stored in long queues or the packets take a less direct route to avoid congestion. Packet latency is different from low throughput because the latency may build up over time even when the throughput is normal. In some cases, excessive latency can render an application such as VoIP or online gaming application unusable.
One approach to manage a computer network's quality of service is through Transmission Control Protocol (TCP) tuning. TCP tuning involves adjusting network congestion avoidance parameters to manage the quality of service for network connections. One such technique is “buffer tuning,” which balances memory demand against a computer's limited resources. Another approach to manage the quality of service of a computer network is through TCP extensions such as with TCP selective acknowledgement options. The TCP selective acknowledgment options allow a TCP receiver to inform a TCP server about specific data packets that have been lost. In turn, the TCP server retransmits the specific data packets instead of an entire data segment.